package com.mew.lobby.handler.login;

import com.mew.common.enm.ExitType;
import com.mew.common.rest.bo.MewSession;
import com.mew.lobby.annotation.LobbyHandler;
import com.mew.lobby.config.LobbySessionManager;
import com.mew.lobby.net.LobbyHandlerMapCmdType;
import com.mew.lobby.net.MewHandler;
import com.zebra.remoting.config.EmptyMessage;
import com.zebra.remoting.protocol.ZebraCommand;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
@Slf4j
@LobbyHandler(LobbyHandlerMapCmdType.SwitchAccount)
public class SwitchAccountHandler implements MewHandler<EmptyMessage> {

    @Autowired
    private LoginExitFeignService loginExitFeignService;

    @Override
    public void handle(ZebraCommand<EmptyMessage> zebraCommand, MewSession session) {
        log.info("SwitchAccount {}", zebraCommand.toString());
        loginExitFeignService.exitLobby(session.uid, ExitType.Switch.code());
        LobbySessionManager.getInstance().removeSession(session.uid);
        zebraCommand.sendSuccessMsg();
    }




}
